home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / networke / civ-0.000 / civ-0 / civ-0.3 / src / WScreen.h < prev    next >
C/C++ Source or Header  |  1995-02-19  |  2KB  |  83 lines

  1. #ifndef _WSCREEN_H
  2. #define _WSCREEN_H
  3.  
  4. #include "graph.h"
  5. #include <windows.h>
  6. #include <string.h>
  7. #include "hash.h"
  8. #include "mytypes.h"
  9. #include "misc.h"
  10. #include "list.h"
  11.  
  12. class MsgQ;
  13.  
  14. // windows graphical interface
  15. class WScreen : public Graphics
  16. {
  17. public:
  18.   WScreen(void (*key)(int, int, int, char *),
  19.         HANDLE hInstance, HANDLE hPrevInstance,
  20.       int nCmdShow);
  21.   virtual ~WScreen();
  22.  
  23.   int AllocColor(char *name);
  24.  
  25.   // displays a message somewhere on the screen
  26.   void DisplayMessage(char *str, int color);
  27.  
  28.   // these functions should draw stuff on the map window
  29.  
  30.   void WriteStr(int x, int y, char *str, int color);
  31.   void WriteChar(int x, int y, int ch, int color);
  32.  
  33.   void Clear();
  34.  
  35.   void FillRect(int x, int y, int width, int ht, int col);
  36.   void Rect(int x, int y, int width, int ht, int col);
  37.  
  38.   void BitBlt(int sx, int sy, int w, int h, int dx, int dy);
  39.  
  40.   long CompilePixmap(char **pixmap);
  41.   void FreePixmap(long handle);
  42.   void DrawPixmap(int xc, int yc, long handle);
  43.   void GetPixmapInfo(long handle, int &w, int &h);
  44.  
  45.   // this function starts up an event driven loop and calls the handler
  46.   // which you specified whenever some event occurs
  47.   // event's are either keypresses or data arriving on the socket
  48.   int MainLoop(); // will not return
  49.  
  50.   friend LONG FAR PASCAL WndProc(HWND, UINT, WPARAM, LPARAM);
  51.  
  52.   void StartTimer(int which, int milli, HandlerFunc func);
  53.   void StopTimer(int which);
  54.  
  55.   void AddReadNotify(int fd, void (*func)(MsgQ *, int, int), int info = 0,
  56.              int q = 1);
  57.  
  58.   void CreateChoiceFrame(char *mesg, List<charp> choices);
  59.   void MessageBox(char *mesg);
  60.  
  61. private:
  62.   struct ColorInfo {
  63.     char *name;
  64.     int r, g, b, id;
  65.   };
  66.  
  67.   HashTable<ColorInfo, StrKey> colors;
  68.  
  69.   int nextColor;
  70. };
  71.  
  72. struct RecvInfo {
  73.   ushort len, left;
  74.   char *buf, *ptr;
  75.   int stat;
  76.   MsgQ *q;
  77.   int qLen;
  78. };
  79.  
  80. typedef RecvInfo *RecvInfoP;
  81.  
  82. #endif
  83.